[dolphinflow86] WEEK 01 Solutions#2641
Conversation
📊 dolphinflow86 님의 학습 현황이번 주 제출 문제
누적 학습 요약
문제 풀이 현황
🤖 이 댓글은 GitHub App을 통해 자동으로 작성되었습니다. 🔢 API 사용량 (gpt-4.1-nano)
|
There was a problem hiding this comment.
@DaleStudy/coach 풀이 3에서 파이썬의 정렬 알고리즘인 팀소트는 내부적으로 최악의 경우 O(n)의 공간복잡도를 가지는 것으로 알고 있는데 혹시 그 부분이 평가에 고려되었을까요?
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set, Sorting
- 설명: 첫 번째 방법은 set을 이용한 중복 체크로 Hash Map/Set 패턴에 속하며, 세 번째 방법은 정렬 후 인접 비교로 Sorting 패턴을 사용합니다. 두 패턴 모두 중복 검출에 효과적입니다.
📊 시간/공간 복잡도 분석
ℹ️ 이 파일에는 3가지 풀이가 포함되어 있어 각각 분석합니다.
풀이 1: Solution.containsDuplicate — Time: ✅ O(n) → O(n) / Space: ✅ O(n) → O(n)
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(n) | O(n) | ✅ |
| Space | O(n) | O(n) | ✅ |
피드백: 집합을 사용하여 각 원소를 한 번씩만 검사하므로 시간 복잡도는 선형이고, 집합 저장에 선형 공간이 필요합니다.
개선 제안: 현재 구현이 적절해 보입니다.
풀이 2: Solution.containsDuplicate — Time: ✅ O(n^2) → O(n^2) / Space: ✅ O(1) → O(1)
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(n^2) | O(n^2) | ✅ |
| Space | O(1) | O(1) | ✅ |
피드백: 이중 루프로 모든 원소 쌍을 검사하므로 시간 복잡도는 이차이며, 공간은 상수입니다.
개선 제안: 시간 복잡도를 개선하려면 정렬 후 인접 원소 비교 방법을 고려할 수 있습니다.
풀이 3: Solution.containsDuplicate — Time: ✅ O(n log n) → O(n log n) / Space: ❌ O(n) → O(1)
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(n log n) | O(n log n) | ✅ |
| Space | O(n) | O(1) | ❌ |
피드백: 배열을 정렬하는 데 O(n log n) 시간이 소요되고, 이후 인접 원소 비교로 선형 시간에 검사 가능합니다.
개선 제안: 현재 구현이 적절해 보입니다.
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Dynamic Programming
- 설명: 이 코드는 메모이제이션을 활용한 최적 부분 구조를 이용한 DP 접근 방식으로, 각 집을 털었을 때와 안 털었을 때의 최적 값을 계산하여 최대 이익을 구합니다.
📊 시간/공간 복잡도 분석
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(N) | O(n) | ✅ |
| Space | O(N) | O(n) | ✅ |
피드백: 각 집에 대해 한 번씩 계산하며, 메모이제이션으로 중복 계산을 방지하므로 시간 복잡도는 선형이고, 저장 공간도 선형입니다.
개선 제안: 현재 구현이 적절해 보입니다.
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set, Union Find
- 설명: 이 코드는 숫자 집합을 이용해 연속된 수를 찾으며, Hash Set을 활용한 O(1) 탐색으로 최장 연속 수열을 구하는 방식입니다. Union Find는 사용되지 않지만, 집합 기반 탐색이 핵심입니다.
📊 시간/공간 복잡도 분석
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(N) | O(n) | ✅ |
| Space | O(N) | O(n) | ✅ |
피드백: 집합을 통해 O(1) 탐색으로 연속 수를 찾으며, 각 수는 최대 한 번씩만 처리되어 전체 시간은 선형입니다.
개선 제안: 현재 구현이 적절해 보입니다.
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Bucket Sort
- 설명: 이 코드는 빈도수별로 데이터를 분류하는 버킷 정렬 방식을 활용하여, 최빈값을 빠르게 찾는 방식입니다. 주어진 문제에 특화된 정렬 기법으로 효율성을 높였습니다.
📊 시간/공간 복잡도 분석
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(N) | O(n) | ✅ |
| Space | O(N) | O(n) | ✅ |
피드백: 빈도수 맵과 버킷 배열을 사용하여 빈도별로 원소를 분류하므로 시간은 선형이고, 공간도 선형입니다.
개선 제안: 현재 구현이 적절해 보입니다.
There was a problem hiding this comment.
🏷️ 알고리즘 패턴 분석
- 패턴: Hash Map / Hash Set
- 설명: 두 번째와 세 번째 방법은 해시 맵을 이용해 보조 자료구조를 활용하여 시간 복잡도를 개선하는 방식으로, 해시 맵 패턴에 속합니다.
📊 시간/공간 복잡도 분석
ℹ️ 이 파일에는 3가지 풀이가 포함되어 있어 각각 분석합니다.
풀이 1: Solution.twoSum — Time: ✅ O(n^2) → O(n^2) / Space: ✅ O(1) → O(1)
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(n^2) | O(n^2) | ✅ |
| Space | O(1) | O(1) | ✅ |
피드백: 모든 쌍을 검사하므로 시간 복잡도는 이차이며, 공간은 상수입니다.
개선 제안: 해시맵을 이용한 방법으로 시간 복잡도를 개선할 수 있습니다.
풀이 2: Solution.twoSum — Time: ❌ O(2*n) → O(n) / Space: ✅ O(n) → O(n)
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(2*n) | O(n) | ❌ |
| Space | O(n) | O(n) | ✅ |
피드백: 한 번의 순회로 원소와 그 보수값을 저장하며, 검색도 O(1)로 수행되어 전체 시간은 선형입니다.
개선 제안: 현재 구현이 적절해 보입니다.
풀이 3: Solution.twoSum — Time: ✅ O(n) → O(n) / Space: ✅ O(n) → O(n)
| 유저 분석 | 실제 분석 | 결과 | |
|---|---|---|---|
| Time | O(n) | O(n) | ✅ |
| Space | O(n) | O(n) | ✅ |
피드백: 보수값을 저장하면서 탐색하는 방식으로, 시간 복잡도는 선형이고 공간도 선형입니다.
개선 제안: 현재 구현이 적절해 보입니다.
jahyun-dev
left a comment
There was a problem hiding this comment.
리뷰가 늦어서 죄송합니다! 금주 계획된 일정이 있던걸 깜빡했습니다 ㅠ_ㅠ 상세하게 다양한 케이스까지 구현해주셔서 읽어보면서 너무 많이 배웠습니다.
아 그러셨군요! |
답안 제출 문제
작성자 체크 리스트
In Review로 설정해주세요.검토자 체크 리스트
Important
본인 답안 제출 뿐만 아니라 다른 분 PR 하나 이상을 반드시 검토를 해주셔야 합니다!